package com.vlong.town.service.labour;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.vlong.town.entity.labour.Labour;
import com.vlong.town.mapper.labour.LabourMapper;

/**
 * @author Assassin
 */
@Service
public class LabourService{

	// Fields

	@Autowired
	private LabourMapper labourMapper;// DAO接口

	// Methods

   /**
	* 添加
	* @param labourId 主键值
	* @param state 是否删除
	* @param status 是否发布
	* @param labourName 劳务名称
	* @param companyName 公司名称
	* @param labourDesc 劳务描述
	* @param workAddress 工作地址
	* @param labourEducation 学历
	* @param labourMinYear 最低年限
	* @param labourMaxYear 最大年限
	* @param labourMinPrice 最低薪资
	* @param labourMaxPrice 最高薪资
	* @param createTime 创建时间
	* @param updateTime 修改时间
	* @return Long labourId 添加后的数据库主键值
	*/
	@Transactional
	public Long add(Long labourId, Integer state, Integer status, String labourName, String companyName, String labourDesc, String workAddress, Integer labourEducation, Integer labourMinYear, Integer labourMaxYear, Long labourMinPrice, Long labourMaxPrice, Long createTime, Long updateTime) {
		// 构造参数实体
		Labour labour = new Labour();
		labour.setLabourId(labourId);// Set 主键值
		labour.setState(state);// Set 是否删除
		labour.setStatus(status);// Set 是否发布
		labour.setLabourName(labourName);// Set 劳务名称
		labour.setCompanyName(companyName);// Set 公司名称
		labour.setLabourDesc(labourDesc);// Set 劳务描述
		labour.setWorkAddress(workAddress);// Set 工作地址
		labour.setLabourEducation(labourEducation);// Set 学历
		labour.setLabourMinYear(labourMinYear);// Set 最低年限
		labour.setLabourMaxYear(labourMaxYear);// Set 最大年限
		labour.setLabourMinPrice(labourMinPrice);// Set 最低薪资
		labour.setLabourMaxPrice(labourMaxPrice);// Set 最高薪资
		labour.setCreateTime(createTime);// Set 创建时间
		labour.setUpdateTime(updateTime);// Set 修改时间
		// 调用DAO接口
		this.labourMapper.insert(labour);
		return labour.getLabourId();
	}

   /**
	* 删除
	* @param labourId 主键值
	*/
	@Transactional
	public void delete(Long labourId) {
		// 调用DAO接口
		this.labourMapper.delete(labourId);
	}

   /**
	* 更新
	* @param labourId 主键值
	* @param state 是否删除
	* @param status 是否发布
	* @param labourName 劳务名称
	* @param companyName 公司名称
	* @param labourDesc 劳务描述
	* @param workAddress 工作地址
	* @param labourEducation 学历
	* @param labourMinYear 最低年限
	* @param labourMaxYear 最大年限
	* @param labourMinPrice 最低薪资
	* @param labourMaxPrice 最高薪资
	* @param createTime 创建时间
	* @param updateTime 修改时间
	*/
	@Transactional
	public void edit(Long labourId, Integer state, Integer status, String labourName, String companyName, String labourDesc, String workAddress, Integer labourEducation, Integer labourMinYear, Integer labourMaxYear, Long labourMinPrice, Long labourMaxPrice, Long createTime, Long updateTime,String reason) {
		// 构造参数实体
		Labour labour = new Labour();
		labour.setLabourId(labourId);// Set 主键值
		labour.setState(state);// Set 是否删除
		labour.setStatus(status);// Set 是否发布
		labour.setLabourName(labourName);// Set 劳务名称
		labour.setCompanyName(companyName);// Set 公司名称
		labour.setLabourDesc(labourDesc);// Set 劳务描述
		labour.setWorkAddress(workAddress);// Set 工作地址
		labour.setLabourEducation(labourEducation);// Set 学历
		labour.setLabourMinYear(labourMinYear);// Set 最低年限
		labour.setLabourMaxYear(labourMaxYear);// Set 最大年限
		labour.setLabourMinPrice(labourMinPrice);// Set 最低薪资
		labour.setLabourMaxPrice(labourMaxPrice);// Set 最高薪资
		labour.setCreateTime(createTime);// Set 创建时间
		labour.setUpdateTime(updateTime);// Set 修改时间
		labour.setReason(reason);
		// 调用DAO接口
		this.labourMapper.update(labour);
	}

   /**
	* 主键查询
	* @param labourId 主键值
	* @return Labour 实体
	*/
	@Transactional(readOnly = true)
	public Labour queryById(Long labourId) {
		// 调用DAO接口
		return this.labourMapper.selectById(labourId);
	}

   /**
	* 根据条件查询列表
	* @param labourId 主键值
	* @param state 是否删除
	* @param status 是否发布
	* @param labourName 劳务名称
	* @param companyName 公司名称
	* @param labourDesc 劳务描述
	* @param workAddress 工作地址
	* @param labourEducation 学历
	* @param labourMinYear 最低年限
	* @param labourMaxYear 最大年限
	* @param labourMinPrice 最低薪资
	* @param labourMaxPrice 最高薪资
	* @param createTime 创建时间
	* @param updateTime 修改时间
	* @return List<Labour> 实体List
	*/
	@Transactional(readOnly = true)
	public List<Labour> queryList(Long labourId, Integer state, Integer status, String labourName, String companyName, String labourDesc, String workAddress, Integer labourEducation, Integer labourMinYear, Integer labourMaxYear, Long labourMinPrice, Long labourMaxPrice, Long createTime, Long updateTime) {
		// 构造参数实体
		Labour labour = new Labour();
		labour.setLabourId(labourId);// Set 主键值
		labour.setState(state);// Set 是否删除
		labour.setStatus(status);// Set 是否发布
		labour.setLabourName(labourName);// Set 劳务名称
		labour.setCompanyName(companyName);// Set 公司名称
		labour.setLabourDesc(labourDesc);// Set 劳务描述
		labour.setWorkAddress(workAddress);// Set 工作地址
		labour.setLabourEducation(labourEducation);// Set 学历
		labour.setLabourMinYear(labourMinYear);// Set 最低年限
		labour.setLabourMaxYear(labourMaxYear);// Set 最大年限
		labour.setLabourMinPrice(labourMinPrice);// Set 最低薪资
		labour.setLabourMaxPrice(labourMaxPrice);// Set 最高薪资
		labour.setCreateTime(createTime);// Set 创建时间
		labour.setUpdateTime(updateTime);// Set 修改时间
		// 调用DAO接口
		return this.labourMapper.selectList(labour);
	}

}